A computer network is a collection of interconnected computing devices that exchange data and share resources. In a packet-based network, such as the Internet, the computing devices communicate data by dividing the data into small blocks called packets. Certain devices within the network, such as routers, maintain routing information that describes routes through the network. In this way, the packets may be individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to resend only those individual packets that may be lost during transmission.
A private network may include a number of devices, such as computers, owned or administered by a single enterprise. These devices may be grouped into a number of site networks, which in turn may be geographically distributed over a wide area. Each site network may include one or more local area networks (LANs). Virtual private networks (VPNs) are often used to securely share data between site networks over a public network, such as the Internet. As one example, VPNs encapsulate and transport layer three (L3) communications, such as Internet Protocol (IP) packets, between the remote sites via the public network.
One form of a VPN is generally referred to as “MPLS VPN” in which Multi-Protocol Label Switching (MPLS) routes are used as a transport mechanism. MPLS is a mechanism used to engineer traffic patterns within IP networks. By utilizing MPLS, a source device can request a path through a network to a destination device, i.e., a Label Switched Path (LSP), to carry MPLS packets from the source device to a destination device. Each router along an LSP allocates a label and propagates the label to the closest upstream router along the path for use in forwarding MPLS packets along the path. Routers along the path cooperatively perform MPLS operations to forward the MPLS packets along the established path.
An MPLS VPN combines the tunneling processes of MPLS with virtual routing and forwarding (VRF) and features of border gateway protocol (BGP) to create a VPN. When a VPN is established within a network, devices for the VPN each include VPN-specific VRF tables. Routers involved in VPN-communications for an enterprise (e.g., provider edge (PE) routers or routers at the edge of a service provider network) maintain distinct virtual routing and forwarding VRF tables for each customer VPN, thereby providing a degree of logical isolation of routing and forwarding information for each different VPN. Additional details regarding VPNs, specifically VPNs implemented using BGP and MPLS are discussed in E. Rosen and Y. Rekhter, “BGP/MPLS IP Virtual Private Networks (VPNs),” RFC 4364, February 2006, available at http://tools.ietf.org/html/rfc4364, and L. Andersson and T. Madsen, “Provider Provisioned Virtual Private Network (VPN) Terminology,” RFC 4026, March 2005, available at http://tools.ietf.org/html/rfc4026, the entire contents of each of which are incorporated herein by reference.
In some cases, a VPN may be configured to carry L3 multicast traffic, such as Internet Protocol Television (IPTV), desktop conferences, corporate broadcasts, music and video web cases, and other forms of multimedia content. If a particular BGP/MPLS IP VPN is transmitting “native” multicast traffic over the backbone, it is referred to as a Multicast VPN (MVPN). “Native” multicast traffic typically refers to packets that a customer edge (CE) router sends to a provider edge (PE) router in which the IP destination address of the packets is a multicast group address, or the packets are multicast control packets (e.g., join messages) addressed to the PE router itself, or the packets are IP multicast data packets encapsulated in MPLS. Further details of MVPNs are described in Internet Engineering Task Force, “Multicast in MPLS/BGP IP VPNs,” Internet Draft, DRAFT-IETF-L3VPN-2547BIS-MCAST-10, Jan. 28, 2010, available at http://tools.ietf.org/html/draft-ietf-13vpn-2547bis-mcast-10, the entire contents of which are incorporated herein by reference.
Multicast traceroute (mtrace) is a multicast facility that traces the path of multicast traffic, such as the various types of L3 multicast traffic described above, from a particular source to a particular destination. In general, the multicast path is determined by walking up the tree from the destination to the source, with each network device in the path adding a response block to an mtrace packet before forwarding the mtrace packet to the next upstream network device in the path (i.e., the next hop router, which is the device that is next closest to the source). The response blocks each contain the current network device's interface addresses and various packet statistics. When the mtrace packet reaches a first hop router, which is a router that is connected to the multicast source, the first hop router adds its own response block, and then returns the mtrace packet to the requesting device. The requesting device may then analyze the path of the multicast traffic based on the response blocks that were added to the mtrace packet by each of the hops in the multicast path. In addition to tracing the path of multicast traffic, the mtrace facility can also be used to identify packet loss problems along the multicast path between a source and a destination, and/or to isolate configuration problems present in the multicast path. Further details of the multicast traceroute facility are described in W. Fenner and S. Casner, “A ‘Traceroute’ Facility for IP Multicast,” Internet Draft, Feb. 11, 2005, available at http://tools.ietf.org/html/draft-fenner-traceroute-ipm-01, the entire contents of which are incorporated herein by reference.